package com.administrator.scoreManageSys.mapper.student;

import com.administrator.scoreManageSys.entity.system.User;
import com.alibaba.fastjson.JSONArray;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author zsh
 * @date 2022/04/12/ 11:37
 */
public interface StudentExamMangeMapper {

    /**
     * 给学生打分
     *
     * @param userId      教师id
     * @param studentId   学生id
     * @param season      考季
     * @param subject     科目
     * @param examination 考试
     * @param score       得分
     */
    void gradeStudents(@Param("userId") Long userId, @Param("studentId") Long studentId, @Param("season") Long season, @Param("subject") Long subject, @Param("examination") Long examination, @Param("score") Double score);

    /**
     * 获取教师任课班级
     * @param userId 教师id
     * @return 任课班级
     */
    JSONArray getTeacherClass(@Param("userId") Long userId);

    /**
     * 根据班级班主任获取所有学生信息
     * @param season 考季id
     * @param classId 班级id
     * @param studentName 学生姓名
     * @param courseClassSplit 任课班级
     * @param headTeacherString 班主任班级
     * @return 所有学生信息
     */
    List<User> getStudentExamList(@Param("season") Long season, @Param("classId") Long classId, @Param("studentName") Long studentName, @Param("courseClassSplit") String[] courseClassSplit, @Param("headTeacherString") String headTeacherString);



    List<Class> obtainMyOwnExamList(@Param("role") Long role);

    /**
     * 修改成绩
     * @param studentId 学生id
     * @param examination 学生考试id
     * @param score 成绩
     */
    void modifyGrades(@Param("studentId") Long studentId, @Param("examination") Long examination, @Param("score") Double score);
}
